package com.chromatic.competition.adapter;

import android.annotation.SuppressLint;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import com.chromatic.competition.R;
import com.chromatic.competition.model.UserPost;

import java.util.List;

public class UserPostsAdapter extends RecyclerView.Adapter<UserPostsAdapter.ViewHolder> {

    private List<UserPost> userPosts;

    @SuppressLint("NotifyDataSetChanged")
    public void setUserPosts(List<UserPost> userPosts) {
        // 设置用户帖子列表数据并通知适配器数据已更改
        this.userPosts = userPosts;
        notifyDataSetChanged();
    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        // 创建ViewHolder并关联对应的布局文件
        // 使用LayoutInflater从item_user_post.xml布局文件创建一个View对象
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_user_post, parent, false);
        return new ViewHolder(view);
    }

    @SuppressLint("SetTextI18n")
    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        // 绑定数据到ViewHolder中的视图组件上
        // 获取在特定位置的UserPost对象
        UserPost userPost = userPosts.get(position);
        // 设置帖子内容到ViewHolder中的视图组件上
        holder.tvCompetitionName.setText(userPost.getCompetitionName());
        holder.tvCategory.setText("科研/竞赛类别：" + userPost.getCategory());
        holder.tvPostContent.setText("内容：" + userPost.getPostContent());
        holder.tvPostTime.setText("发布时间：" + userPost.getPostTime());
        holder.tvStartTime.setText("开始时间：" + userPost.getStartTime());
        holder.tvEndTime.setText("结束时间：" + userPost.getEndTime());
        // 其他帖子信息的显示

        // 可选：如果需要处理点击事件可以在这里添加逻辑
        holder.itemView.setOnClickListener(v -> {
            // 处理帖子点击事件的逻辑
        });
    }

    @Override
    public int getItemCount() {
        // 返回用户帖子列表的大小
        return userPosts != null ? userPosts.size() : 0;
    }

    public static class ViewHolder extends RecyclerView.ViewHolder {
        TextView tvCategory;
        TextView tvCompetitionName;
        TextView tvPostContent;
        TextView tvPostTime;
        TextView tvStartTime;
        TextView tvEndTime;

        public ViewHolder(View itemView) {
            super(itemView);
            // 获取ViewHolder中的视图组件
            // 通过findViewById方法找到item_user_post.xml布局文件中对应的TextView控件
            tvCategory = itemView.findViewById(R.id.tvCategory);
            tvCompetitionName = itemView.findViewById(R.id.tvCompetitionName);
            tvPostContent = itemView.findViewById(R.id.tvPostContent);
            tvPostTime = itemView.findViewById(R.id.tvPostTime);
            tvStartTime = itemView.findViewById(R.id.tvStartTime);
            tvEndTime = itemView.findViewById(R.id.tvEndTime);
            // 其他帖子信息的视图组件
        }
    }
}